Academy

Docker Registry এবং Image Management

Latest Technologies - ডকার (Docker) - NCTB BOOK

Docker Registry হল একটি স্থান যেখানে Docker Images সংরক্ষণ এবং বিতরণ করা হয়। এটি একটি কেন্দ্রীয় রিপোজিটরি হিসেবে কাজ করে, যেখানে ব্যবহারকারীরা তাদের তৈরি করা Docker Images আপলোড করতে এবং অন্য ব্যবহারকারীরা সেই ইমেজগুলি ডাউনলোড করতে পারে। Docker Hub হলো সবচেয়ে জনপ্রিয় পাবলিক Docker Registry, তবে ব্যবহারকারীরা তাদের নিজস্ব প্রাইভেট Registry তৈরি করতেও পারে।

Docker Registry-এর মূল বৈশিষ্ট্য

কেন্দ্রীয় সংরক্ষণাগার:

  • Docker Registry Images সংরক্ষণ এবং বিতরণের জন্য একটি কেন্দ্রীয় স্থান। ব্যবহারকারীরা তাদের Docker Images আপলোড এবং শেয়ার করতে পারে।

বহু ইমেজ:

  • Docker Registry-এ হাজার হাজার পাবলিক এবং প্রাইভেট ইমেজ উপলব্ধ রয়েছে, যেমন জনপ্রিয় অ্যাপ্লিকেশন এবং সার্ভিস।

ভার্সন কন্ট্রোল:

  • Registry ব্যবহার করে বিভিন্ন সংস্করণের Docker Images রাখা সম্ভব। উদাহরণস্বরূপ, nginx:latest এবং nginx:1.19 এর মতো ভিন্ন ট্যাগ সহ ইমেজ।

Authentication:

  • প্রাইভেট Registry-এ অ্যাক্সেস নিয়ন্ত্রণের জন্য প্রমাণীকরণ ব্যবস্থার সুবিধা পাওয়া যায়। এটি নিরাপত্তা নিশ্চিত করে।

API:

  • Docker Registry REST API-এর মাধ্যমে ইমেজ পুশ, পুল, এবং ম্যানেজ করার সুবিধা প্রদান করে।

Docker Registry ব্যবহারের উদাহরণ

Docker Hub ব্যবহার করে

Docker Hub-এ লগইন করা:

এটি আপনার Docker Hub ইউজারনেম এবং পাসওয়ার্ড চাইবে।

docker login

Docker Image পুশ করা:

এখানে my-image হল স্থানীয় Docker Image এবং myusername/my-image:latest হল Docker Hub-এ আপলোড করা ইমেজের নাম।

docker tag my-image myusername/my-image:latest
docker push myusername/my-image:latest

Docker Image পুল করা:

এই কমান্ডটি Docker Hub থেকে নির্দিষ্ট ইমেজ ডাউনলোড করবে।

docker pull myusername/my-image:latest

Docker Image Management

Docker Images পরিচালনা করার জন্য কিছু গুরুত্বপূর্ণ কমান্ড রয়েছে, যা আপনাকে ইমেজ তৈরি, তালিকা, তথ্য দেখা, এবং মুছতে সহায়তা করে।

Docker Image তালিকা দেখা:

এটি আপনার সিস্টেমে উপলব্ধ সমস্ত Docker Images-এর তালিকা দেখাবে।

docker images

Docker Image সম্পর্কে বিস্তারিত তথ্য দেখা:

এটি my-image নামক ইমেজের বিস্তারিত তথ্য প্রদর্শন করবে।

docker inspect my-image

Docker Image মুছা:

এটি my-image নামক Docker Image মুছে ফেলবে। মনে রাখবেন, যদি ইমেজটি কন্টেইনার দ্বারা ব্যবহৃত হয়, তবে এটি মুছা যাবে না।

docker rmi my-image

অব্যবহৃত Images মুছা:

এটি সমস্ত অব্যবহৃত (dangling) Images মুছে ফেলবে।

docker image prune

সারসংক্ষেপ

Docker Registry হল Docker Images সংরক্ষণ এবং বিতরণের একটি কেন্দ্রীয় ব্যবস্থা, যা ব্যবহারকারীদের জন্য তাদের ইমেজগুলি সহজে আপলোড এবং শেয়ার করার সুযোগ দেয়। Docker Hub হলো সবচেয়ে জনপ্রিয় পাবলিক Registry, তবে প্রাইভেট Registry তৈরি করাও সম্ভব। Docker Images পরিচালনার জন্য বিভিন্ন কমান্ড রয়েছে, যা ইমেজের কার্যক্রম এবং স্টোরেজ পরিচালনা করতে সহায়তা করে। Docker Registry এবং Image Management একসাথে কাজ করে Docker-এর কার্যকারিতা এবং স্থায়িত্ব উন্নত করতে।

Content added By

Docker Registry কী এবং এর ভূমিকা

Docker Registry হল একটি স্থান যেখানে Docker Images সংরক্ষণ, পরিচালনা এবং বিতরণ করা হয়। এটি একটি কেন্দ্রীয় রিপোজিটরি হিসেবে কাজ করে, যা ব্যবহারকারীদের তাদের তৈরি করা Docker Images আপলোড এবং শেয়ার করার সুযোগ দেয়। Docker Registry এর সবচেয়ে পরিচিত উদাহরণ হল Docker Hub, যা একটি পাবলিক Registry।

Docker Registry-এর ভূমিকা

ইমেজ সংরক্ষণ:

  • Docker Registry ব্যবহারকারীদের Docker Images সংরক্ষণ করতে সহায়তা করে। এটি ডেভেলপারদের তাদের তৈরি করা ইমেজগুলি কেন্দ্রীয়ভাবে সংরক্ষণ করার সুযোগ দেয়, যা সহজেই অ্যাক্সেসযোগ্য।

ইমেজ বিতরণ:

  • ব্যবহারকারীরা Docker Registry থেকে ইমেজগুলি ডাউনলোড (পুল) করতে পারেন। এটি একটি সংযুক্ত পরিবেশে একাধিক কন্টেইনার তৈরি করার জন্য সহজে উপলব্ধ করে।

ভার্সন কন্ট্রোল:

  • Docker Registry বিভিন্ন সংস্করণের Docker Images পরিচালনার জন্য সাহায্য করে। উদাহরণস্বরূপ, একই অ্যাপ্লিকেশনের জন্য বিভিন্ন ভার্সন যেমন myapp:1.0, myapp:1.1, ইত্যাদি রাখা সম্ভব।

সহযোগিতা:

  • Docker Registry ব্যবহারকারীদের জন্য তাদের ইমেজগুলি শেয়ার করার সুযোগ দেয়। এটি ডেভেলপার টিমগুলির মধ্যে সহযোগিতা বৃদ্ধি করে এবং একই ইমেজে কাজ করা সহজ করে।

নিরাপত্তা:

  • প্রাইভেট Docker Registries নিরাপত্তা নিয়ন্ত্রণের জন্য প্রমাণীকরণ এবং অনুমোদন ব্যবস্থা প্রদান করে। এটি নিশ্চিত করে যে কেবল নির্ধারিত ব্যবহারকারীরাই ইমেজগুলিতে অ্যাক্সেস পায়।

স্বয়ংক্রিয় নির্মাণ:

  • Docker Registry যেমন Docker Hub স্বয়ংক্রিয় নির্মাণের সুবিধা প্রদান করে। এটি GitHub বা Bitbucket থেকে কোড আপডেট হলে স্বয়ংক্রিয়ভাবে নতুন Docker Image তৈরি করে।

API:

  • Docker Registry RESTful API ব্যবহার করে ডেভেলপাররা তাদের কাস্টম টুল এবং সিস্টেমগুলির সাথে Registry ইন্টিগ্রেট করতে পারেন। এটি ইমেজ পুশ, পুল, এবং ম্যানেজ করার জন্য সহজ।

সারসংক্ষেপ

Docker Registry একটি অপরিহার্য উপাদান যা Docker Images সংরক্ষণ, বিতরণ এবং পরিচালনার জন্য ব্যবহৃত হয়। এটি ব্যবহারকারীদের জন্য তাদের তৈরি করা ইমেজগুলি সহজে সংরক্ষণ এবং শেয়ার করার সুযোগ দেয়, এবং বিভিন্ন সংস্করণের ইমেজ পরিচালনার সুবিধা প্রদান করে। Docker Hub সবচেয়ে জনপ্রিয় Docker Registry, তবে ব্যবহারকারীরা তাদের নিজস্ব প্রাইভেট Registry তৈরি করতেও পারে। Docker Registry-এর মাধ্যমে ডেভেলপাররা কার্যকরভাবে তাদের কাজ পরিচালনা করতে পারে, যা সফটওয়্যার ডেভেলপমেন্ট এবং ডিপ্লয়মেন্টের প্রক্রিয়াকে উন্নত করে।

Content added By

Public এবং Private Registry এর ব্যবহার

Docker Registry হল একটি স্টোরেজ সিস্টেম যেখানে Docker Images সংরক্ষণ, শেয়ার, এবং পরিচালনা করা হয়। Docker Registry-এর দুটি প্রধান ধরনের রয়েছে: Public Registry এবং Private Registry। নিচে তাদের ব্যবহারের পদ্ধতি, সুবিধা এবং উদাহরণ আলোচনা করা হলো।

Public Registry

বর্ণনা

Public Registry হল একটি উন্মুক্ত প্ল্যাটফর্ম যেখানে ব্যবহারকারীরা Docker Images শেয়ার করতে এবং ডাউনলোড করতে পারে। সবচেয়ে জনপ্রিয় public registry হল Docker Hub

ব্যবহার

  • ডাউনলোড এবং শেয়ারিং: ব্যবহারকারীরা বিভিন্ন Docker Images পাবেন এবং সেগুলি ডাউনলোড করতে পারেন, যেমন nginx, alpine, mysql, ইত্যাদি।
  • নতুন Images তৈরি: ডেভেলপাররা তাদের তৈরি করা ইমেজগুলি public registry-তে আপলোড করে, যাতে অন্যান্য ব্যবহারকারীরা সেগুলি অ্যাক্সেস করতে পারেন।
  • কমিউনিটি: Public registry তে একটি বড় কমিউনিটি থাকে, যা ব্যবহারকারীদেরকে বিভিন্ন ইমেজ এবং টেমপ্লেটের জন্য সহায়তা করে।

উদাহরণ

  • Docker Hub থেকে একটি ইমেজ ডাউনলোড করতে:
docker pull nginx

Private Registry

বর্ণনা

Private Registry হল একটি ব্যক্তিগত প্ল্যাটফর্ম যেখানে Docker Images শুধুমাত্র নির্ধারিত ব্যবহারকারীদের জন্য উপলব্ধ থাকে। এটি সাধারণত ব্যবসায়িক পরিবেশে ব্যবহার করা হয় যেখানে নিরাপত্তা এবং গোপনীয়তা গুরুত্বপূর্ণ।

ব্যবহার

  • নিরাপত্তা: Private Registry ব্যবহার করে সংবেদনশীল বা কনফিডেনশিয়াল ইমেজগুলি নিরাপদে সংরক্ষণ করা যায়।
  • নিয়ন্ত্রণ: ব্যবহারকারীরা তাদের ইমেজের জন্য সম্পূর্ণ নিয়ন্ত্রণ রাখতে পারেন, যেমন কে ইমেজ অ্যাক্সেস করতে পারবে।
  • সংস্থার জন্য কার্যকর: এটি বড় সংস্থাগুলির জন্য কার্যকর, যেখানে বিভিন্ন প্রকল্প এবং দলের জন্য আলাদা আলাদা ইমেজ প্রয়োজন হয়।

উদাহরণ

একটি Private Registry তৈরি করার জন্য, আপনি Docker Registry ইমেজ ব্যবহার করতে পারেন:

docker run -d -p 5000:5000 --restart always --name registry registry:2

Private Registry থেকে একটি ইমেজ পুল করতে:

docker pull myregistry.com/my-image:latest

সারসংক্ষেপ

Public Registry এবং Private Registry হল Docker Images পরিচালনার দুটি ভিন্ন উপায়। Public Registry ব্যবহারকারীকে সহজে ইমেজ অ্যাক্সেস করতে দেয় এবং একটি বড় কমিউনিটি প্রদান করে, যেখানে Private Registry নিরাপত্তা এবং নিয়ন্ত্রণ নিশ্চিত করে। উভয় ধরনের Registry-এর ব্যবহার আপনার অ্যাপ্লিকেশন এবং ডেভেলপমেন্টের প্রয়োজনের ওপর নির্ভর করে।

Content added By

Docker Hub এ Image Push এবং Pull করা

Docker Hub হল Docker Images-এর জন্য একটি পাবলিক রেজিস্ট্রি যেখানে ব্যবহারকারীরা তাদের তৈরি করা Docker Images আপলোড (Push) এবং ডাউনলোড (Pull) করতে পারেন। এখানে Docker Hub-এ Image Push এবং Pull করার প্রক্রিয়া বিস্তারিতভাবে আলোচনা করা হলো।

Docker Hub-এ Image Push করা

Docker Hub-এ একটি Image Push করতে, আপনাকে প্রথমে Docker Hub-এ লগ ইন করতে হবে এবং তারপর আপনার Image ট্যাগ করতে হবে। নিচে এই প্রক্রিয়া ধাপে ধাপে বর্ণনা করা হলো:

১. Docker Hub-এ লগইন করা

docker login
  • এই কমান্ডটি আপনাকে Docker Hub-এ আপনার ইউজারনেম এবং পাসওয়ার্ড দিতে বলবে। সঠিক তথ্য দিলে আপনি Docker Hub-এ লগইন করতে পারবেন।

২. Docker Image তৈরি করা (যদি ইতিমধ্যে তৈরি না থাকে)

নিচে একটি সাধারণ Dockerfile ব্যবহার করে একটি Image তৈরি করার উদাহরণ দেওয়া হলো:

# Dockerfile
FROM alpine:latest
CMD ["echo", "Hello, Docker Hub!"]

Dockerfile থেকে Image তৈরি করতে:

docker build -t my-image .

৩. Docker Image ট্যাগ করা

Docker Hub-এ পুশ করার জন্য, আপনাকে আপনার Image-কে একটি ট্যাগ দিতে হবে যা Docker Hub-এ ইমেজের নাম অন্তর্ভুক্ত করে:

docker tag my-image myusername/my-image:latest
  • এখানে myusername হল আপনার Docker Hub ইউজারনেম এবং my-image হল আপনার Image এর নাম।

৪. Docker Image Push করা

Docker Hub-এ Image Push করতে নিচের কমান্ড ব্যবহার করুন:

docker push myusername/my-image:latest
  • এই কমান্ডটি আপনার ট্যাগ করা Image কে Docker Hub-এ আপলোড করবে।

Docker Hub-এ Image Pull করা

Docker Hub থেকে একটি Image Pull করতে, আপনাকে নিম্নলিখিত ধাপগুলি অনুসরণ করতে হবে:

১. Docker Hub-এ লগইন (ঐচ্ছিক)

যদি আপনি প্রাইভেট ইমেজ পুল করতে চান তবে আপনাকে লগইন করতে হবে। পাবলিক ইমেজের জন্য এটি বাধ্যতামূলক নয়।

docker login

২. Docker Image Pull করা

Docker Hub থেকে একটি Image Pull করতে নিচের কমান্ড ব্যবহার করুন:

docker pull myusername/my-image:latest
  • এখানে myusername/my-image:latest হল সেই Image যার আপনি কপি করতে চান।

৩. পুল করা Image যাচাই করা

Docker Hub থেকে Image Pull করার পরে, এটি আপনার সিস্টেমে তালিকাভুক্ত হয়। এটি যাচাই করতে নিচের কমান্ডটি ব্যবহার করুন:

docker images

সারসংক্ষেপ

Docker Hub-এ Image Push এবং Pull করার প্রক্রিয়া সহজ। লগইন করার পর, আপনি আপনার Image-কে Docker Hub-এ আপলোড করতে পারেন এবং অন্যরা সেই Image-কে ডাউনলোড করতে পারে। Docker Hub একটি কেন্দ্রীয় রেজিস্ট্রি হিসেবে কাজ করে, যা Docker Images শেয়ারিং এবং ব্যবস্থাপনা সহজ করে তোলে। Docker Hub ব্যবহারের মাধ্যমে আপনি দ্রুত এবং কার্যকরভাবে Docker Images পরিচালনা করতে পারবেন।

Content added By

Docker Image Tagging এবং Version Management হল Docker Images-এর পরিচালনার জন্য গুরুত্বপূর্ণ বৈশিষ্ট্য। এগুলি ডেভেলপারদের জন্য তাদের তৈরি করা Images-এর সংস্করণ নিয়ন্ত্রণ এবং সংরক্ষণকে সহজ করে তোলে। নিচে Docker Image Tagging এবং Version Management সম্পর্কে বিস্তারিত আলোচনা করা হলো।

Docker Image Tagging

Tagging হল একটি প্রক্রিয়া যা Docker Images-এর সংস্করণ বা ভেরিয়েন্ট সনাক্ত করতে ব্যবহৃত হয়। প্রতিটি Docker Image একটি বা একাধিক ট্যাগ থাকতে পারে, যা ইমেজের নির্দিষ্ট সংস্করণ নির্দেশ করে।

ট্যাগের গঠন

Docker Images-এর ট্যাগ সাধারণত দুটি অংশে বিভক্ত হয়:

  • Image Name: ইমেজের নাম (যেমন my-app বা nginx)।
  • Tag: ইমেজের সংস্করণ (যেমন latest, 1.0, 2.1)।

উদাহরণ:

my-app:1.0
nginx:latest

ট্যাগিং করার পদ্ধতি

ইমেজ তৈরি করার সময় ট্যাগিং: Dockerfile ব্যবহার করে যখন আপনি একটি ইমেজ তৈরি করেন, তখন আপনি docker build কমান্ডের সাথে -t ফ্ল্যাগ ব্যবহার করে ট্যাগ দিতে পারেন।

docker build -t my-app:1.0 .

বিদ্যমান ইমেজের জন্য ট্যাগ তৈরি করা: একটি বিদ্যমান ইমেজকে নতুন ট্যাগ দিতে, docker tag কমান্ড ব্যবহার করুন।

docker tag my-app:1.0 my-app:latest

Version Management

Docker Images-এর Version Management হল ইমেজের বিভিন্ন সংস্করণ পরিচালনা করার প্রক্রিয়া। এটি ডেভেলপারদের জন্য অ্যাপ্লিকেশন ডিপ্লয়মেন্টের সময় বিভিন্ন সংস্করণ নিশ্চিত করতে সহায়ক।

Versioning-এর গুরুত্ব

  1. নিয়ন্ত্রণ: Version Management ডেভেলপারদের জন্য অ্যাপ্লিকেশনের বিভিন্ন সংস্করণে ফিরে যাওয়ার বা নির্দিষ্ট সংস্করণ ব্যবহারের অনুমতি দেয়।
  2. সহযোগিতা: বিভিন্ন টিমের মধ্যে সহযোগিতা করতে সাহায্য করে, যেখানে ভিন্ন ভিন্ন সংস্করণের উপর কাজ করা হচ্ছে।
  3. নিরাপত্তা: নিশ্চিত করে যে একটি নিরাপত্তা সমস্যা বা বাগের কারণে পুরনো সংস্করণে ফিরে যেতে হবে, তখন আপনি সহজেই সেই সংস্করণে ফিরে যেতে পারেন।

Version Management পদ্ধতি

ট্যাগ ব্যবহার করে: প্রতিটি ইমেজের জন্য একটি নির্দিষ্ট সংস্করণ ট্যাগ ব্যবহার করুন। যেমন:

my-app:v1.0
my-app:v1.1

লজিক্যাল সিকোয়েন্স: সংস্করণ নামকরণের জন্য একটি লজিক্যাল সিকোয়েন্স বজায় রাখুন, যেমন Semantic Versioning (MAJOR.MINOR.PATCH):

  • MAJOR: গুরুত্বপূর্ণ পরিবর্তন যা পিছনো সমর্থন নষ্ট করে।
  • MINOR: নতুন ফিচার যোগ করে তবে পিছনো সমর্থন বজায় রাখে।
  • PATCH: বাগ ফিক্স বা ছোট পরিবর্তন।

সারসংক্ষেপ

Docker Image Tagging এবং Version Management হল Docker Images-এর কার্যকর ব্যবস্থাপনার জন্য গুরুত্বপূর্ণ বৈশিষ্ট্য। Image Tagging দিয়ে আপনি ইমেজের সংস্করণ চিহ্নিত করতে পারেন এবং Version Management ব্যবহার করে বিভিন্ন সংস্করণের মধ্যে নিয়ন্ত্রণ এবং নিরাপত্তা নিশ্চিত করতে পারেন। এগুলি ডেভেলপারদের জন্য সফটওয়্যার ডেভেলপমেন্ট এবং ডিপ্লয়মেন্টের প্রক্রিয়াকে আরও সহজ এবং কার্যকর করে তোলে।

Content added By
Promotion